/**
 * 对外暴露的函数：接收圆的半径r，返回包含周长、面积计算方法的对象
 * @param {number} r - 圆的半径
 * @returns {object} - 包含circumference（周长）和area（面积）方法的对象
 */
function circleFun(r) {
  // 校验半径合法性（必须为正数）
  if (typeof r !== "number" || r <= 0) {
    throw new Error("半径必须是正数！");
  }

  // 计算圆的周长：2 * π * r（π取Math.PI）
  function circumference() {
    return 2 * Math.PI * r;
  }

  // 计算圆的面积：π * r²
  function area() {
    return Math.PI * r * r;
  }

  // 返回包含两个计算方法的对象
  return { circumference, area };
}

// 暴露circleFun函数（供其他模块引入）
module.exports = circleFun;